package zgrjb.snbq.teach_platform.dto.model;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 评论表 DO
 * 对应数据库表：comment
 * 
 * CREATE TABLE `comment` (
 *     `id` BIGINT UNSIGNED NOT NULL PRIMARY KEY COMMENT '评论ID',
 *     `topic_id` BIGINT UNSIGNED NOT NULL COMMENT '话题ID',
 *     `student_id` BIGINT UNSIGNED NOT NULL COMMENT '评论学生ID',
 *     `author` VARCHAR(64) DEFAULT NULL COMMENT '评论者姓名',
 *     `message` VARCHAR(512) DEFAULT NULL COMMENT '评论内容',
 *     `good` INT DEFAULT 0 COMMENT '点赞数',
 *     `time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '评论时间',
 *     `commit_to` BIGINT UNSIGNED DEFAULT NULL COMMENT '回复的评论ID',
 *     `type` VARCHAR(64) DEFAULT 'comment' COMMENT '评论类型',
 *     `status` TINYINT DEFAULT 1 COMMENT '状态：1-正常，0-删除',
 *     `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
 *     `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
 * );
 */

@Data
@TableName("comment")
public class CommentDO {

    /**
     * 评论ID
     */
    private Long id;

    /**
     * 话题ID
     */
    @TableField("topic_id")
    private Long topicId;

    /**
     * 评论学生ID
     */
    @TableField("student_id")
    private Long studentId;

    /**
     * 评论者姓名
     */
    private String author;

    /**
     * 评论内容
     */
    private String message;

    /**
     * 点赞数
     */
    private Integer good;

    /**
     * 评论时间
     */
    private LocalDateTime time;

    /**
     * 回复的评论ID
     */
    @TableField("commit_to")
    private Long commitTo;

    /**
     * 评论类型
     */
    private String type;

    /**
     * 状态：1-正常，0-删除
     */
    private Integer status;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private LocalDateTime updateTime;
}
